1
Научный метод оптимизации для HIP
AI024Lesson 7
00:00

Оптимизация в среде HIP должна рассматриваться как строгая эмпирическая дисциплина а не как серия интуитивных догадок. Принимая систематический рабочий процесс, разработчики гарантируют, что каждое изменение кода обосновано данными, выводя инженерию производительности из «оптимизационной магии» в повторяемый научный цикл гипотез и проверки.

Шестиступенчатый рабочий процесс

Рекомендации по производительности HIP рекомендуют системную последовательность:

  1. Измерить базовый уровень: Определите текущее время выполнения и пропускную способность.
  2. Профилировать программу: Используйте rocprofv3 для сбора счётчиков аппаратного обеспечения.
  3. Определить узкое место: Определите, являетесь ли вы ограниченными вычислениями, памятью или задержками.
  4. Применить целевую оптимизацию: Сосредоточьтесь только на выявленном узком месте.
  5. Повторно измерить: Убедитесь, что изменение действительно улучшило производительность.
  6. Итерировать: Повторите процесс до достижения целей.
1. Измерить базовый уровень2. Профилировать3. Определить узкое место4. Оптимизировать

Избегайте оптимизационных суеверий

Улучшения производительности должны быть воспроизводимыми результатами конкретных взаимодействий с оборудованием. Избегайте этих анти-паттернов:

  • Изменение кода ядра до измерения текущей производительности.
  • Подстройка размера блока без знания того, является ли ядро ограничением по памяти.
  • Гонка за показателями загрузки без доказательства их значимости для конкретной нагрузки.
main.py
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>